package com.ruoyi.admin.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;


@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "llm_datasets")
@Tag(name = "知识库对象", description = "知识库")
public class LlmDatasets implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(name = "主键ID", type = "string")
    @TableId(value = "id")
    private String id;

    @Schema(name = "名称", type = "string")
    @TableField("name")
    private String name;

    @Schema(name = "描述", type = "string")
    @TableField("description")
    private String description;

    @Schema(name = "文档数量", type = "integer")
    @TableField("document_count")
    private Integer documentCount = 0;

    @Schema(name = "总单词数", type = "integer")
    @TableField("word_count")
    private Integer wordCount = 0;

    @Schema(name = "检索方式", type = "string")
    @TableField("search_method")
    private String searchMethod = "Vector_Search";

    @Schema(name = "伪删除", type = "integer")
    @TableField("deleted")
    private Integer deleted = 0;

    @Schema(name = "创建人ID")
    @TableField("create_by")
    private String createBy;

    @Schema(name = "创建时间")
    @TableField("create_time")
    private String createTime;

    @Schema(name = "修改时间")
    @TableField("update_time")
    private String updateTime;

    @Schema(name = "一级分类编码")
    @TableField("category_code")
    private String categoryCode;

    @Schema(name = "知识库编码")
    @TableField("dataset_code")
    private String datasetCode;

    @Schema(name = "父编码")
    @TableField("parent_id")
    private String parentId;


    @TableField("folder_code")
    @Schema(name = "文件夹Code")
    private String folderCode;

    @TableField("label_data")
    @Schema(name = "元数据")
    private String labelData;

    @TableField("sort")
    @Schema(name = "排序号")
    private int sort;

    @TableField("slice_type")
    @Schema(name = "切割方式")
    private String sliceType;

    @TableField("slice_type_symbol")
    @Schema(name = "分割字符")
    private String sliceTypeSymbol;

    @TableField("slice_type_overlap_length")
    @Schema(name = "分割重叠长度")
    private int sliceTypeOverlapLength;

    @TableField("slice_type_max_length")
    @Schema(name = "切割方式最大长度")
    private int sliceTypeMaxLength;

}
